/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | foam-extend: Open Source CFD
   \\    /   O peration     |
    \\  /    A nd           | For copyright notice see file Copyright
     \\/     M anipulation  |
-------------------------------------------------------------------------------
License
    This file is part of OpenFOAM.

    OpenFOAM is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2 of the License, or (at your
    option) any later version.

    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    for more details.

    You should have received a copy of the GNU General Public License
    along with OpenFOAM; if not, write to the Free Software Foundation,
    Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Description
    Calculate log of a volSymmTensorField
    To calculate log of a tensor, we must rotate the tensor to principal
    components and calculate the log of the principals components, then
    rotate this principal log components back to get the log tensor

Author
    Philip Cardiff UCD

\*---------------------------------------------------------------------------*/

#ifndef logVolSymmTensorField_H
#define logVolSymmTensorField_H

#include "eig3Field.H"
#include "emptyFvPatchFields.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{
    // Natural log of a volSymmTensor field
    tmp<volSymmTensorField> log(const volSymmTensorField& vf);

    // Natural log of a surfaceSymmTensor field
    tmp<surfaceSymmTensorField> log(const surfaceSymmTensorField& vf);

    // Natural log of a symmTensor field
    tmp<symmTensorField> log(const symmTensorField& vf);

} // End namespace Foam


// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#endif

// ************************************************************************* //
